package com.insigma.business.gateway.api;

import com.insigma.business.qrcode.common.vo.BaseResponse;
import org.springframework.core.Ordered;

import java.lang.reflect.Method;


public interface ServiceInterceptor extends Ordered {

    BaseResponse<String> beforeInvoke(Method method, Object[] args, Object target);

    void afterInvoke(Object returnValue, Method method, Object[] args, Object target);


    BaseResponse<String> afterInvoke(String returnJsonValue, Method method, Object[] args,
                                            Object target);

    void throwsInvoke(Throwable t, Method method, Object[] args, Object target);

}
